package com.indusfo.spc.service;

import com.indusfo.spc.pojo.MatVer;
import com.indusfo.spc.pojo.UploadMatVer;
import com.indusfo.spc.vo.JSONObject;

import java.util.List;

/**
 * @Author liub
 * @Date 2019/11/20 9:37
 * @Version 1.0
 */
public interface MatVerService {

	/**
	 * 查询物料版本
	 */
	JSONObject queryMatVer(MatVer matVer);

	/**
	 * 新增物料版本
	 */
	JSONObject insertMatVer(MatVer matVer);

	/**
	 * 修改物料版本
	 */
	JSONObject updateMatVer(MatVer matVer);

	/**
	 * 修改物料版本
	 */
	JSONObject deleteMatVer(List<Integer> matVerIds, Integer dataState);
	/**
	 * @Author 熊冰 保存工序流程
	 * @Date 2019/11/23 10:42
	 */
	JSONObject saveMatFlow(MatVer matVer);
	/**
	 * @Author 熊冰 保存维修流程
	 * @Date 2019/11/23 10:42
	 */
	JSONObject saveMatRepair(MatVer matVer);
	/**
	 * @Author 熊冰 导入标准流程 强制导入工序流程 和 维修流程
	 * @Date 2019/11/26 10:09
	 * matId 物料id
	 * matVerId 标准流程id
	 * leadStation  是否导入工位
	 * leadBom  是否导入关键物料
	 * leadBadpheno  是否导入不良现象
	 * leadDete  是否导入采集项目
	 * leadRepairDete  是否导入维修流程采集项目
	 * leadRepairFlow  是否导入维修流程工序
	 */
	JSONObject leadMatVer(Integer matId, Integer matVerId,Integer leadBom, Integer leadStation, Integer leadBadpheno, Integer leadDete, Integer leadRepairDete, Integer leadRepairFlow);

	/**
	 * 级联删除物料版本下的工序流程和维修流程
	 */
    JSONObject deleteCascadeMatRepair(List<Integer> matVerIds, Integer dataState);

	/**
	 * 工艺文件库查询
	 */
    JSONObject queryMatVerByProfile(MatVer matVer);

	/**
	 * 检查excel字段信息
	 * @param uploadMatVer
	 * @return
	 */
    String checkExcelContent(UploadMatVer uploadMatVer);

	/**
	 * 批量导入
	 * @param uploadMatVerList
	 * @return
	 */
	JSONObject updateListUploadMatVer(List<UploadMatVer> uploadMatVerList);
}
